home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er Special 15
/
64er_Magazin_Sonderheft_15_19xx_Markt__Technik_de_Side_A.d64
/
collection kit
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
12KB
|
355 lines
0 rem *********************************
1 rem * *
2 rem * the stamping collection kit *
3 rem * *
4 rem * (c) in 1986 by arndt ganse *
5 rem * in den dornen 32 *
6 rem * 5810 witten-annen *
7 rem * tel. 02302/60698 *
8 rem * *
9 rem *********************************
10 poke53280,12:poke53281,12:print"[147]":dima$(22),rv$(22),b$(21):q=1:z=4:s=1
20 fori=1to40:b1$=b1$+" ":b2$=b2$+"[192]":next:br=12:lg=11:deffnzb(x)=lg+z:ic=1
30 deffnsb(x)=s+len(a$(az))+1:sa=1:iq=1
40 sz=6500:sw=1:fori=1to40:b3$=b3$+"[195]":next:ifps=1thensz=4500
41 ff$(1)="koenigreich":ff$(2)="grossherzogtum":ff$(3)="herzogtum"
42 ff$(4)="republik":ff$(5)="kaiserreich":ff$(6)="freistaat"
43 ff$(7)="fuerstentum":ff$(8)="volksstaat"
49 goto1000
50 :
60 rem standardmaske
70 :
80 print"[179][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][178]";
90 print"[207][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][208]";:ford=1to21
100 print"[180] [170]";:next
110 print"[204][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][186]";
111 ifps=0thenprint" part i";
112 ifps=1thenprint" part ^";
113 printleft$(b1$,15);
114 ifu%=0thenprint" data bank closed"
115 ifu%=1thenprint" data bank open"
119 return
120 :
130 rem menueerstellung
140 :
150 print"[179][171][171]";x$(1);"[171][171]";x$(2);"[171][171]";x$(3);"[171][171]";x$(4);"[171][171]";x$(5);"[171][171]";x$(6);
155 print"[171][171][178]"
160 return
170 :
180 rem menueauswahl
190 :
200 vy=1:j=peek(56320):getx$
210 if(jand8)=0orx$=""thenifiq=6theniq=1:goto260
220 if(jand8)=0orx$=""thenifiq<6theniq=iq+1:goto260
230 if(jand4)=0orx$="[157]"thenifiq=1theniq=6:goto260
240 if(jand4)=0orx$="[157]"thenifiq>1theniq=iq-1:goto260
250 if(jand16)=0orx$=chr$(13)thenvy=0:return
260 fori=1to6:x$(i)="[146]"+right$(x$(i),5):next:x$(iq)=""+right$(x$(iq),5)
270 gosub120:ifvy=1thenvy=0:goto170
280 return
290 :
300 rem window-technik
310 :
320 ifz>(21-lg)ors>(37-br)thenz=2:s=2
330 z1=z+1:s1=s+1:poke214,z:poke211,s:sys58732:print"[213]";left$(b2$,br);"[201]"
340 forx=1tolg:poke214,z+x:poke211,s:sys58732:print"[221]";left$(b1$,br);"[194]":next
350 poke214,z+x:poke211,s:sys58732:print"[202]";left$(b3$,br);"[203]":fori=1toaz
360 poke214,z1:poke211,s1:sys58732:printa$(i):z1=z1+1:next:poke646,1:return
370 :
380 rem input-routine
390 :
400 poke198,0
410 sb=fnsb(x):zb=fnzb(x):be$="":poke214,zb:poke211,sb:sys58732:poke204,0
420 getx$:ifx$=chr$(13)andlen(be$)>=mithenpoke204,1:print" ":return
430 ifx$=""then420
440 x=asc(x$):ifx=20andbe$=""then420
445 ifx=133andps=0then850
447 ifx>132andx<141andps=1ands=6then940
450 ifx=20thenprint"[157] [157][157]";:be$=left$(be$,len(be$)-1)
460 ifx<32orx>95orlen(be$)>=mathen420
470 printx$;:ifx=32thenbe$=be$+"":goto420
475 be$=be$+x$:goto420
480 :
490 rem menueauswahl-routine
500 :
510 poke198,0
520 fori=1toaz:rv$(i)="[146]":nexti:q=q+((q>az)*az):rv$(q)="":z1=z+1:fori=1toaz
530 poke214,z1:poke211,s1:sys58732:printrv$(i);a$(i);"[146]":z1=z1+1:nexti
540 j=peek(56320):getx$
550 if(jand1)=0orx$="[145]"thenifq=bnthenq=en:goto520
560 if(jand1)=0orx$="[145]"thenifq>bnthenq=q-1:goto520
570 if(jand2)=0orx$=""thenifq=enthenq=bn:goto520
580 if(jand2)=0orx$=""thenifq<enthenq=q+1:goto520
590 if(jand16)=0orx$=chr$(13)thenreturn
600 goto520
700 :
710 rem zeiger positionieren
720 :
730 hb%=sa/256:lb%=sa-hb%*256:print#15,"p";chr$(3);chr$(lb%);chr$(hb%);chr$(1)
740 return
750 :
760 rem disk ueberpfuefen
770 :
780 f%=peek(768):poke768,185:open1,8,15,"i":close1:poke768,f%
790 ifst<>-128thenreturn
800 az=6:a$(1)="drive":a$(2)="not":a$(3)="ready.":a$(4)="":a$(5)="press":s=10
810 a$(6)="button":z=z+2:br=6:lg=6:gosub320:gosub990:goto780
820 :
830 rem input zusatz i
840 :
850 poke211,sb:sys58732:ifs=6thends=1
860 ifs=11thends=2
870 ifs=15thends=3
880 ifs=25thends=4
890 ifs=28thends=5
900 printtr$(ds);:be$=tr$(ds):poke198,1:poke631,13:goto420
910 :
920 rem input zusatz ii
930 :
940 poke211,sb:sys58732:ifs=6thends=1
950 printff$(x-132);:be$=ff$(x-132):poke198,1:poke631,13:goto420
960 :
970 rem warten auf reaktion
980 :
990 getx$:ifpeek(56320)and16=0thenx$=chr$(13)
995 ifx$=chr$(13)thenreturn
999 goto990
1000 :
1010 rem hauptverteiler
1020 :
1030 x$(1)="crte[146]":x$(2)="open[146]":x$(3)="disk[146]":x$(4)="edit[146]":x$(5)="prnt[146]"
1040 x$(6)="exit[146]":gosub80:gosub260:gosub150:gosub200
1050 oniqgoto3000,2000,4000,7000,8000,6000
1060 end
2000 :
2010 rem open
2020 :
2030 ifu%=0thenu%=1:goto2070
2040 az=8:a$(1)="you must":a$(2)="first":a$(3)="close":a$(4)="the last":s=5:z=2
2050 a$(5)="data bank":a$(6)="":a$(7)="press":a$(8)="button":br=9:lg=8:gosub320
2060 gosub990:goto1030
2070 az=5:a$(1)="please":a$(2)="enter":a$(3)="name":a$(4)="":a$(5)=":":s=7:z=2
2080 br=6:lg=5:mi=1:ma=5:gosub320:gosub400:ifbe$="_"then1030
2085 da$=be$:az=6:a$(1)="please":s=5:br=9
2090 a$(2)="insert":a$(3)="your data":a$(4)="disk and":a$(5)="press"
2100 a$(6)="button":lg=6:z=z+2:gosub320:gosub990:gosub780
2110 open15,8,15,"i0":open1,8,3,da$:goto1030
3000 :
3010 rem create
3020 :
3030 ifu%<>0then2030
3040 az=5:a$(1)="please":a$(2)="enter":a$(3)="name":a$(4)="":a$(5)=":":s=1:z=2
3050 br=6:lg=5:mi=1:ma=5:gosub320:gosub400:ifbe$="_"then1030
3055 da$=be$:az=6:a$(1)="please":s=1:br=9
3060 a$(2)="insert a":a$(3)="formatted":a$(4)="disk and":a$(5)="press"
3070 a$(6)="button":lg=6:z=z+2:gosub320:gosub990:gosub780:az=5:s=1:z=z+2
3080 a$(1)="enter":a$(2)="no. of":a$(3)="entries":a$(4)="":a$(5)=":":br=7:lg=5
3090 mi=1:ma=4:gosub320:gosub400:sz=val(be$):ifsz<1then3090
3100 ifps=0andsz>6500then3090
3105 ifps=1andsz>4500then3090
3110 ifps=0thensl=25:hb=int(sz/255):lb=sz-hb*255:open15,8,15,"i0"
3115 ifps=1thensl=31:hb=int(sz/255):lb=sz-hb*255:open15,8,15,"i0"
3120 open1,8,3,da$+",l,"+chr$(sl):print#15,"p";chr$(3);chr$(lb);chr$(hb);chr$(1)
3130 print#1,chr$(255):close1:close15:goto1030
4000 :
4010 rem disk commands
4020 :
4030 ifu%<>0then2030
4040 az=5:a$(1)="":a$(2)="disk commands":a$(3)="directory":s=9:z=2:br=14:lg=5
4050 a$(4)="return to menu":a$(5)="":en=4:bn=2:q=2:gosub320:gosub510
4060 onqgoto0,4070,4110,1030
4070 az=5:a$(1)="insert disk":a$(2)="into drive":a$(3)="":a$(4)="press button"
4080 br=12:lg=4:s=s+2:z=z+2:gosub320:gosub990:gosub780:print"[147]"
4090 mi=1:ma=79:s=0:z=0:br=0:lg=0:gosub400:open1,8,15,be$:close1:open15,8,15
4100 input#15,a,b$,c,d:close15:printa,b$,c,d:print"press fire button"
4105 gosub990:goto4040
4110 az=5:a$(1)="insert disk":a$(2)="into drive":a$(3)="":a$(4)="press button"
4120 br=12:lg=4:s=s+2:z=z+2:gosub320:gosub990:gosub780:print"[147]"
4130 open1,8,0,"$":get#1,a$,a$
4140 get#1,a$,a$:ifst=64thenclose1:goto4180
4150 get#1,a$,b$:printasc(a$+chr$(0))+256*asc(b$+chr$(0));
4160 get#1,a$:printa$;:ifa$<>""then4160
4170 print:getx$:ifx$="_"then4180
4175 goto4140
4180 print"press fire button.":gosub990:goto4040
6000 :
6010 rem exit
6020 :
6030 close1:close15:u%=0:az=5:a$(2)="return to menu":a$(3)="return to basic"
6040 a$(1)="":a$(5)="":z=2:bn=2:en=4:br=15:lg=5:ifps=0thena$(4)="enter part ^"
6045 ifps=1thena$(4)="enter part i"
6050 s=22:q=2:gosub320:gosub510:ifq=2then1030
6060 ifq=4andps=1thenps=0:goto40
6070 ifq=4andps=0thenps=1:goto40
6080 end
7000 :
7010 rem edit
7020 :
7030 ifu%=1then7065
7040 az=5:a$(1)="you first":a$(2)="have to open":a$(3)="a data bank"
7050 a$(4)="":a$(5)="press button":br=12:lg=5:z=2:s=16:gosub320
7060 gosub990:goto1030
7065 ifps=1then9030
7070 az=7:a$(1)="read data bank":a$(2)="edit data bank":br=14:lg=7:z=2:s=15
7080 a$(3)="search an item":a$(4)="count entries":a$(7)="return to menu"
7090 a$(5)="save entries":a$(6)="edit data list":bn=1:en=7:gosub320:gosub510
7100 onqgoto7110,7180,7420,7320,7310,10030,1030
7110 az=6:a$(1)="please enter":a$(2)="the number":a$(3)="you want to":s=s+2
7120 a$(4)="see.":a$(5)="":a$(6)=":":z=z+1:br=12:lg=6:mi=0:ma=4:gosub320
7130 gosub400:ifbe$=""then7145
7135 ifbe$="_"then7030
7140 sa=val(be$):ifsa+20>szorsa<1then7120
7145 ifsa+20>szorsa<1then7120
7150 gosub80:gosub730:fori=1to21:input#1,b$(i):next:print"":fori=1to21:w$=""
7155 forx=1toi:w$=w$+"":next:printw$;"";sa
7160 sa=sa+1:next:print"":fori=1to21:w$="":forx=1toi:w$=w$+"":next
7165 printw$;"";b$(i):next:gosub990
7170 goto7110
7180 az=6:a$(1)="please enter":a$(2)="the number":a$(3)="you want to":s=s+2
7190 a$(4)="edit":a$(5)="":a$(6)=":":z=z+1:br=12:lg=6:mi=0:ma=4:gosub320
7200 gosub400:ifbe$=""then7215
7205 ifbe$="_"then7030
7210 sa=val(be$):sw=sa:ifsa+21>szorsa<1then7190
7215 sw=sa:ifsa+21>szorsa<1then7190
7220 gosub80:gosub730:fori=1to21:input#1,b$(i):next:print"":fori=1to21:w$=""
7225 forx=1toi:w$=w$+"":next:printw$;"";sw
7230 sw=sw+1:next:print"":fori=1to21:w$="":forx=1toi:w$=w$+"":next
7235 printw$;"";b$(i):next:z=1:br=0:lg=0:a$(1)="":az=1
7240 fori=1to21:ifui=1thennext:ui=0:goto7180
7243 tr$="":mi=4:ma=4:s=6:z=z+1:gosub400:tr$=tr$+be$+" ":tr$(1)=be$
7245 ifbe$="____"thenui=1:next:ui=0:goto7180
7250 mi=0:ma=3:s=11:gosub400:tr$=tr$+left$(be$+" ",3)+" ":tr$(2)=be$
7260 mi=0:ma=9:s=15:gosub400:tr$=tr$+left$(be$+" ",9)+" ":tr$(3)=be$
7270 mi=1:ma=2:s=25:gosub400:tr$=tr$+left$(be$+" ",2)+" ":tr$(4)=be$
7280 mi=1:ma=1:s=28:gosub400:tr$=tr$+left$(be$+" ",1):tr$(5)=be$
7290 gosub730:print#1,tr$:sa=sa+1:next
7300 goto7215
7310 close1:close15:open15,8,15,"i0":open1,8,3,da$:goto7030
7320 az=5:a$(1)="counting":fori=2to4:a$(i)="":next:s=s+2:z=z+2:lg=5:br=8
7330 a$(5)="stand by":gosub320:ne=0:sa=1:gosub730
7340 input#1,a$:b$=right$(a$,1):sa=sa+1
7350 poke214,z+3:poke211,s+2:sys58732:printright$(" "+str$(sa),4)
7360 ifb$="x"orb$="y"orb$="j"thenne=ne+1
7370 ifb$<>"[255]"then7340
7380 sa=sa-1:az=6:z=z+2:s=s+2:br=12:lg=6:a$(1)=da$:a$(2)="includes"
7390 a$(3)=right$(" "+str$(ne),4)+" of "+right$(" "+str$(sa),4)
7400 a$(4)="entries.":a$(5)="":a$(6)="press button":gosub320:gosub990
7410 goto7030
7420 az=5:z=z+2:s=s+2:lg=5:br=12:a$(1)="please enter":a$(2)="the cat. no."
7430 a$(3)="of the item":a$(4)="you want to":a$(5)="find:":mi=1:ma=4:gosub320
7440 gosub400:ifbe$="_"then7030
7450 no=val(be$):ifno<1orno>szthen7430
7460 sa=1:gosub730
7470 input#1,a$:sa=sa+1:ifa$="[255]"then7500
7480 b=val(left$(a$,4)):ifno<>bthen7470
7490 sa=sa-1:goto7145
7500 az=5:lg=5:br=14:z=z+2:s=s+2:a$(1)="no."+str$(no)+" is not"
7510 a$(2)="included in":a$(3)=da$:a$(4)="":a$(5)="press button":gosub320
7520 gosub990:goto7030
8000 :
8010 rem print-routine
8020 :
8030 ifu%=0then7040
8040 az=5:s=22:z=2:lg=5:br=12:a$(1)="attach your":a$(2)="printer to"
8050 a$(3)="the computer":a$(4)="":a$(5)="press button":gosub320
8060 gosub990:f%=peek(768):poke768,185:open4,4:close4:poke768,f%
8070 ifst<>-128then8050
8080 open4,4,7:sa=1:gosub730:print#4,da$:print#4
8090 input#1,a$:ifa$="[255]"then8120
8100 getx$:ifx$="_"then8120
8110 print#4,a$:goto8090
8120 close4:goto1030
9000 :
9010 rem edit part ii
9020 :
9030 az=7:a$(1)="read data bank":a$(2)="edit data bank":br=14:lg=7:z=2:s=15
9040 a$(3)="search an item":a$(4)="count entries":a$(7)="return to menu"
9050 a$(5)="save entries":a$(6)="edit data list":bn=1:en=7:gosub320:gosub510
9060 onqgoto9070,9180,9420,9320,9310,11030,1030
9070 az=6:a$(1)="please enter":a$(2)="the number":a$(3)="you want to":s=s+2
9080 a$(4)="see.":a$(5)="":a$(6)=":":z=z+1:br=12:lg=6:mi=0:ma=4:gosub320
9090 gosub400:ifbe$=""then9120
9100 ifbe$="_"then9030
9110 sa=val(be$):ifsa+20>szorsa<1then9080
9120 ifsa+20>szorsa<1then9080
9130 gosub80:gosub730:forz=1to21:input#1,b$(z):next:print"":fori=1to21:w$=""
9140 forx=1toi:w$=w$+"":next:printw$;"";sa
9150 sa=sa+1:next:print"":fori=1to21:w$="":forx=1toi:w$=w$+"":next
9160 printw$;"";b$(i):next:gosub990
9170 goto9070
9180 az=6:a$(1)="please enter":a$(2)="the number":a$(3)="you want to":s=s+2
9190 a$(4)="edit":a$(5)="":a$(6)=":":z=z+1:br=12:lg=6:mi=0:ma=4:gosub320
9200 gosub400:ifbe$=""then9215
9205 ifbe$="_"then9030
9210 sa=val(be$):sw=sa:ifsa+21>szorsa<1then9190
9215 sw=sa:ifsa+21>szorsa<1then7190
9220 gosub80:gosub730:fori=1to21:input#1,b$(i):next:print"":fori=1to21:w$=""
9225 forx=1toi:w$=w$+"":next:printw$;"";sw
9230 sw=sw+1:next:print"":fori=1to21:w$="":forx=1toi:w$=w$+"":next
9235 printw$;"";b$(i):next:z=1:br=0:lg=0:a$(1)="":az=1
9240 fori=1to21:ifui=1thennext:ui=0:goto9180
9243 tr$="":mi=1:ma=25:s=6:z=z+1:gosub400
9244 tr$=tr$+left$(be$+" ",25)+" "
9245 ifbe$="_"thenui=1:next:ui=0:goto9180
9250 mi=4:ma=4:s=32:gosub400:tr$=tr$+be$
9290 gosub730:print#1,tr$:sa=sa+1:next
9300 goto9215
9310 close1:close15:open15,8,15,"i0":open1,8,3,da$:goto9030
9320 az=5:a$(1)="counting":fori=2to4:a$(i)="":next:s=s+2:z=z+2:lg=5:br=8
9330 a$(5)="stand by":gosub320:ne=0:sa=1:gosub730
9340 input#1,a$:b$=right$(a$,4):sa=sa+1
9350 poke214,z+3:poke211,s+2:sys58732:printright$(" "+str$(sa),4)
9360 ne=ne+val(b$)
9370 ifb$<>"[255]"then9340
9380 sa=sa-1:az=5:z=z+2:s=s+2:br=12:lg=5:a$(1)=da$:a$(2)="includes"
9390 a$(3)=right$(" "+str$(ne),5)+" stamps"
9400 a$(4)="":a$(5)="press button":gosub320:gosub990
9410 goto9030
9420 az=3:z=z+2:s=s+2:lg=3:br=27:a$(1)="please enter the name of":mi=1:ma=25
9430 a$(2)="the item you want to find":a$(3)=":":gosub320
9440 gosub400:ifbe$="_"then9030
9450 be$=left$(be$+" ",25)
9460 sa=1:gosub730
9470 input#1,a$:sa=sa+1:ifa$="[255]"then9500
9480 b$=left$(a$,25):ifbe$<>b$then9470
9490 sa=sa-1:goto9120
9500 az=5:lg=5:br=15:z=z+2:s=s+2:a$(1)="the name is not"
9510 a$(2)="included in":a$(3)=da$:a$(4)="":a$(5)="press button":gosub320
9520 gosub990:goto9030
10000 :
10010 rem edit data list i
10020 :
10030 az=6:a$(1)="please enter":a$(2)="the number":a$(3)="you want to":s=s+2
10040 a$(4)="edit":a$(5)="":a$(6)=":":z=z+1:br=12:lg=6:mi=0:ma=4:gosub320
10050 gosub400:ifbe$=""then10080
10060 ifbe$="_"then7030
10070 sa=val(be$):sw=sa:ifsa+21>szorsa<1then7190
10080 sw=sa:ifsa+21>szorsa<1then10190
10090 gosub80:gosub730:fori=1to21:input#1,b$(i):next:print"":fori=1to21:w$=""
10100 forx=1toi:w$=w$+"":next:printw$;"";sw
10110 sw=sw+1:next:print"":fori=1to21:w$="":forx=1toi:w$=w$+"":next
10120 printw$;"";b$(i):next:z=1:br=0:lg=0:a$(1)="":az=1
10130 fori=1to21:ifui=1thennext:ui=0:goto7180
10140 tr$=left$(b$(z),22):mi=1:ma=1:s=28:z=z+1:gosub400:tr$=tr$+be$:tr$(1)=be$
10150 ifbe$="_"thenui=1:next:ui=0:goto10040
10160 gosub730:print#1,tr$:sa=sa+1:next
10170 goto10080
11000 :
11010 rem edit data list ii
11020 :
11030 az=6:a$(1)="please enter":a$(2)="the number":a$(3)="you want to":s=s+2
11040 a$(4)="edit":a$(5)="":a$(6)=":":z=z+1:br=12:lg=6:mi=0:ma=4:gosub320
11050 gosub400:ifbe$=""then11080
11060 ifbe$="_"then7030
11070 sa=val(be$):sw=sa:ifsa+21>szorsa<1then7190
11080 sw=sa:ifsa+21>szorsa<1then11190
11090 gosub80:gosub730:fori=1to21:input#1,b$(i):next:print"":fori=1to21:w$=""
11100 forx=1toi:w$=w$+"":next:printw$;"";sw
11110 sw=sw+1:next:print"":fori=1to21:w$="":forx=1toi:w$=w$+"":next
11120 printw$;"";b$(i):next:z=1:br=0:lg=0:a$(1)="":az=1
11130 fori=1to21:ifui=1thennext:ui=0:goto7180
11140 tr$=left$(b$(z),26):mi=4:ma=4:s=32:z=z+1:gosub400:tr$=tr$+be$
11150 ifbe$="____"thenui=1:next:ui=0:goto11040
11160 gosub730:print#1,tr$:sa=sa+1:next
11170 goto11080